/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package generadordeclasesv003.Controlador;

import generadordeclasesv003.Modelo.Clase;


import java.util.ArrayList;
import java.util.Iterator;


/**
 *
 * @author Administrador
 */
public class Controlador_GestorDeClases {
private ArrayList<Clase> ClasesExistentes;
private ArrayList<Clase> ClasesACrear;




private static Controlador_GestorDeClases c_gc;

public Controlador_GestorDeClases() {
    ClasesExistentes=new ArrayList<Clase>();
    ClasesACrear=new ArrayList<Clase>();
    principalesClasesNoPrimitivas();
   }

public static Controlador_GestorDeClases getInstancia(){
if(c_gc==null){
    c_gc=new Controlador_GestorDeClases();

}
return c_gc;
}

public void principalesClasesNoPrimitivas(){

ClasesExistentes.add(new Clase("void",false,1));
ClasesExistentes.add(new Clase("int",false,1));
ClasesExistentes.add(new Clase("string",false,1));
ClasesExistentes.add(new Clase("DateTime",false,1));
ClasesExistentes.add(new Clase("bool",false,1));


}

public void CargarClasesExistentes(Clase c){
ClasesExistentes.add(c);
}




public boolean verificarExistenciadeClase(String nom){

Iterator i=ClasesExistentes.iterator();

while(i.hasNext()){
 if(((Clase)i.next()).getNombreDeClase().equalsIgnoreCase(nom)){
     return true;
 }
}
    return false;

}

public Clase ValidarExistenciaClasesACrear(String nombre){
 Iterator i=ClasesACrear.iterator();

 while(i.hasNext()){
 Clase c=(Clase)i.next();
 if(c.getNombreDeClase().equalsIgnoreCase(nombre)){
     return c;
 }
}
    return null;

}

//*****************************METODOS GET-SET***********************************
    public ArrayList<Clase> getClasesACrear() {
        return ClasesACrear;
    }

    public void setClasesACrear(ArrayList<Clase> ClasesACrear) {
        this.ClasesACrear = ClasesACrear;
    }

    public ArrayList<Clase> getClasesExistentes() {
        return ClasesExistentes;
    }

    public void setClasesExistentes(ArrayList<Clase> ClasesExistentes) {
        this.ClasesExistentes = ClasesExistentes;
    }

}
